package com.syun.spring.ioc.core.bean;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class BeanUtils
{

    /** * 匹配setter方法的正则表达式 */
    private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)");


    /**
     * 获取对象的setter方法。
     */
    public static Method getSetterMethod(Object obj, String property)
    {
        Method[] methods = obj.getClass().getMethods();
        for (Method method : methods)
        {
            Matcher m = SET_PATTERN.matcher(method.getName());
            if (m.matches() && (method.getParameterTypes().length == 1))
            {
                if(method.getName().toLowerCase().equals(("set" + property).toLowerCase())){
                    return method;
                }
            }
        }
        return null;
    }
}


